package ui.robots_wicket;

import org.apache.wicket.Page;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.PropertyListView;
import org.apache.wicket.model.PropertyModel;

import unq.uis.robots.applicationsModels.ComprarRobotApplicationModel;
import unq.uis.robots.applicationsModels.JugadorVista;
import unq.uis.robots.model.Robot;

public class ComprarPage extends WebPage {

	private static final long serialVersionUID = 1L;

	private JugadorVista jugadorVista;
	private Page vistaAnterior;

	public ComprarPage(Page vistaAnterior, JugadorVista jugadorVista) {
		this.vistaAnterior = vistaAnterior;
		this.jugadorVista = jugadorVista;
		this.agregarLabels();
		this.agregarTablaRobotsDelSistema();
		this.botones();
	}

	private void agregarTablaRobotsDelSistema() {
		this.add(new PropertyListView<Robot>("robotsDelSistema",this.jugadorVista.getRobotsSistema()) {
			private static final long serialVersionUID = 1L;

			@Override
			protected void populateItem(ListItem<Robot> item) {				
				item.add(new Label("nombre"));
				item.add(new Label("poderTotal"));
				item.add(new Label("danio"));
				item.add(new Label("precio"));
				
				final Robot robot = item.getModelObject();
				item.add(new Link<String>("comprar"){
					private static final long serialVersionUID = 1L;

					public void onClick() {
						ComprarRobotApplicationModel comprarApplicationModel = new ComprarRobotApplicationModel(jugadorVista);
						comprarApplicationModel.setRobotSeleccionado(robot);
						this.setResponsePage(new OfertarPage(ComprarPage.this, comprarApplicationModel));
					};
				});
			}
		});
	}

	private void agregarLabels() {
		this.add(new Label("nombreJugador", new PropertyModel<String>(this.jugadorVista, "nombre")));
		this.add(new Label("dineroJugador", new PropertyModel<Integer>(this.jugadorVista, "dinero")));
	}

	private void botones() {
		this.add(new Link<String>("volver"){
			private static final long serialVersionUID = 1L;

			public void onClick() {
				this.setResponsePage(vistaAnterior);
			};
		}
		);
	}
	
	public Page getVistaAnterior(){
		return this.vistaAnterior;
	}
}
